// função para permitir apenas numero
function Numero(inputTexto) {
	inputTexto.value = inputTexto.value.replace(/[^0-9]/g, '');
}

// Função para Formatar campos.
function FormatAll(strField, sMask, numerico, validar) {
	var i, nCount, sValue, fldLen, mskLen, bolMask, sCod, nTecla;

	if (document.all) { // Internet Explorer
		nTecla = event.keyCode;
	} else if (document.layers) { // Nestcape
		nTecla = event.which;
	} else {
		nTecla = event.which;
		if (nTecla == 8) {
			return true;
		}
	}

	// SE O CAMPO FOR NUMERICO
	if (numerico)
		Numero(strField);

	sValue = strField.value;

	// Limpa todos os caracteres de formatação que
	// já estiverem no campo.
	// toString().replace [transforma em sring e troca elementos por ""]
	sValue = sValue.toString().replace(/[-.\/()_,<>?\+*#: ]/g, "")
	fldLen = sValue.length;
	mskLen = sMask.length;

	i = 0;
	nCount = 0;
	sCod = "";
	mskLen = fldLen;

	while (i <= mskLen) {
		bolMask = ((sMask.charAt(i) == "-") || (sMask.charAt(i) == ":")
				|| (sMask.charAt(i) == ".") || (sMask.charAt(i) == "/"))
		bolMask = bolMask
				|| ((sMask.charAt(i) == "(") || (sMask.charAt(i) == ")")
						|| (sMask.charAt(i) == " ") || (sMask.charAt(i) == "."))

		// Se for true utiliza elementos especiais aumenta a máscara
		if (bolMask) {
			sCod += sMask.charAt(i);
			mskLen++;
			// Caso false mostra o sValue(o q foi digitado)
		} else {
			sCod += sValue.charAt(nCount);
			nCount++;
		}
		i++;
	}

	strField.value = sCod;

	if (validar) {
		if (strField.value != "" && sMask.length > strField.value.length) {
			System.messagedata.alert('Erro',
					'O campo deve atender a seguinte mascara: ' + sMask,
					'Error!');
			strField.focus();
			return;
		}
	}

	if (nTecla != 8) { // backspace
		// alert(sMask.charAt(i-1));
		if (sMask.charAt(i - 1) == 9) { // apenas números...
			return ((nTecla > 47) && (nTecla < 58));
		} // números de 0 a 9
		else { // qualquer caracter...
			return true;
		}
	} else {
		return true;
	}
}

// função para permitir somente numeros.
function Number(input, e, dec) {
	var key;
	var keychar;

	if (window.event)
		key = window.event.keyCode;
	else if (e)
		key = e.which;
	else
		return true;

	keychar = String.fromCharCode(key);

	// controle das teclas
	if ((key == null) || (key == 0) || (key == 8) || (key == 9) || (key == 27))
		return true;

	// numeros
	else if ((("0123456789").indexOf(keychar) > -1))
		return true;

	// permite teclas adicionais passadas como parametros
	else if (dec && (dec == keychar))
		return true;
	else
		return false;
}

/**
 * Formata um texto para um formato numérico. Utilize esta função nos eventos
 * onkeypress e onchange (nos dois).
 * 
 * @param inputValor : Input que será formatado
 * @param intCasasDecimais [opcional]: Número de casas decimais (default 2)
 * @param strSepDecimal [opcional]: Caracter separador decimal (default ',')
 * @param strSepGrupo [opcional]: Caracter separador de grupos (default '.')
 * 
 */
function formataValor(inputValor, intCasasDecimais, strSepDecimal, strSepGrupo) {
	if (inputValor.value.length != '') {
		strNumero = inputValor.value;
		intCasasDecimais = intCasasDecimais == undefined ? 2 : intCasasDecimais;
		strSepDecimal = strSepDecimal == undefined ? ',' : strSepDecimal;
		strSepGrupo = strSepGrupo == undefined ? '.' : strSepGrupo;

		if (strNumero.length > inputValor.maxLength) {
			maxlengthCampo = (inputValor.maxLength != -1) ? inputValor.maxLength
					: 30;
			strNumero = strNumero.substr(0, maxlengthCampo);
		}

		strNumero = strNumero.replace(/[^0-9]/g, '');
		strNumero = strNumero.replace(/^0+/g, '');

		while (strNumero.length < intCasasDecimais + 1) {
			strNumero = '0' + strNumero;
		}

		numInteiro = strNumero.substr(0, strNumero.length - intCasasDecimais);
		numDecimal = strNumero.substr(strNumero.length - intCasasDecimais);

		strNumero = '';
		while (numInteiro.length > 3) {
			strNumero = strSepGrupo + numInteiro.substr(numInteiro.length - 3)
					+ strNumero;
			numInteiro = numInteiro.substr(0, numInteiro.length - 3);
		}
		strNumero = numInteiro + strNumero;

		if (numDecimal.length > 0) {
			strNumero += strSepDecimal + numDecimal;
		}

		inputValor.value = strNumero;
	}
}

function checkAll(elem)
{
	var checked_status = elem.checked; //Captura seu estado, se está marcado ou não
	$("input.checkall").each(function(){ this.checked = checked_status; }); //Aplica a marcação
}